<?php
declare (strict_types = 1);

namespace app\common\lib\file;

#[class('Files', '文件处理类')]
class Files
{
    #[('Files image')]
    public function getAllFile($path = '')
    {
        $path = $path;

        $list_dir = scandir($path);

        // 1. 遍历目录和文件
        // 2. 排序. 文件夹排前面
        $new_dir  = [];
        $new_file = [];
        foreach ($list_dir as $key => $value) {
            $tmp_path = $path . '/' . $value;

            // 如果是文件夹
            if (is_dir($tmp_path)) {
                array_push($new_dir, $value);
            } else {
                array_push($new_file, $value);
            }
        }

        // 两个数组顺序合并
        $list_dir = array_merge($new_dir, $new_file);

        //需要忽略的目录
        $ignore = config('file.ignore');

        // 返回数组的差集
        $list_dir = array_diff($list_dir, $ignore);

        return $list_dir;
    }

    public function getContents($path = '')
    {
        $content = file_get_contents($path);

        if (!strlen($content)) {
            return '该文件内容为空';
        }

        return $content;
    }
}
